In 1948, Claude Shannon initially proposed his famous “noisy channel coding theorem” which firstly gives the maximum transmission rate of the noisy channel information, i.e., channel capacity. Simultaneously, Shannon also derived the ultimate limited transmission capability of the noisy channel, i.e., the minimum Signal-to-Noise Ratio required by errorless information transmission, which is also called as the Shannon limit. The Shannon limit is an important indication for evaluating capability of the channel forward error correcting codes. The closer is the performance curve of the forward error correction (FEC) to the Shannon limit, the more excellent is the FEC performance. Otherwise, the performance is worse.
The Low Density Parity Check code (LDPC) is one kind of excellent channel error correction encoding scheme which may approach the Shannon's limit. The LDPC code is a special linear parity block code, whose parity-check matrix is “sparse”: there is only very few non-zero elements (for the binary code, non-zero element is 1), and the remaining elements are all zero. In 1960, Robert Gallager firstly proposed the concept of LDPC code in his Ph.D. dissertation and also suggested two iterative decoding algorithms, that is why the LDPC code is also called as Gallager code. Gallager indicated, in theory, that the LDPC code may approach the channel capacity with low complexity by using iterative decoding algorithms (or message delivering algorithms). This is a great invention, but in the following 30 years, researchers did not pay enough attention on it.
From the current viewpoint, one reasons why the LDPC code was ignored might consist in that the technique of the software and hardware of the computers were very low at that time, and thus the researchers could not know the excellent performance of the LDPC code from computer simulations; as another reason, the LDPC code needs a larger storage space which could not be born at that time. Additionally, at that time, other codes such as Reed-Solomon code and Hamming code were available, which might be used temporarily as channel encoding schemes, and thus the researchers did not intently forward their reaches onto the LDPC code.
Even at this time, if it is intended to apply the LDPC code into the actual communication systems, the LDPC code still needs to be carefully studied and designed. Since the actual communication systems additionally put some special requirements on the LDPC code, such as codec hardware schemes having lower complexity, excellent error correction performance, and the like, besides the deep studies on the encoding/decoding method, it is also required to specially limit the construction of the Parity Check matrix of the LDPC code. Generally, there are two methods of constructing the Parity Check matrix of the LDPC code: one is to firstly set some attribute limitations on the Parity Check matrix such as minimum girth or node degree distribution and then randomly or pseudo-randomly generate the Parity Check matrix by using the computer searching methods; the other is to construct the parity-check matrix of the LDPC code by using the mathematical formulae to make it have regular structure. However, neither of these two methods can provide satisfactory error correction performance and lower complexity.